package at.fhooe.mc.master.clc.server.domain.datastorenative;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import at.fhooe.mc.master.clc.server.domain.IBigEntity;
import at.fhooe.mc.master.clc.server.domain.IEmbeddedEntity;

public class BigEntityDatastoreNative extends AbstractNativeDatastoreEntity implements IBigEntity
{
	
	 // each 100 entries
	private List<String> stringList1;
	
	private Map<String, String> stringMap1;
	
	private EmbeddedDatastoreNativeEntity embeddedEntity;
	// 10 entries
	
//	private List<EmbeddedDatastoreNativeEntity> embeddedEntityList;
	
	public BigEntityDatastoreNative() {}
	 
	
	public BigEntityDatastoreNative(List<String> stringList1,
			Map<String, String> stringMap1,
			EmbeddedDatastoreNativeEntity embeddedEntity)
	{
		super();
		this.stringList1 = stringList1;
		this.stringMap1 = stringMap1;
		this.embeddedEntity = embeddedEntity;
	}



	public BigEntityDatastoreNative(boolean generate)
	{
		if (generate)
		{
			stringMap1 = new HashMap<String, String>();
			stringList1 = new ArrayList<String>();
			
			for (int i = 0; i < 100; i++)
			{
				stringMap1.put("1_key" + i, "1_value" + i);
				stringList1.add("string_entry" + i);
			}
			
			embeddedEntity = new EmbeddedDatastoreNativeEntity(true);
//			embeddedEntityList = new ArrayList<EmbeddedDatastoreNativeEntity>();
//			for (int i = 0; i < 10; i++)
//			{
//				embeddedEntityList.add(new EmbeddedDatastoreNativeEntity(true));
//			}
		}
	}

	@Override
	public Long getId()
	{
		return this.id.getId();
	}
	
	@Override
	public Map<String, String> getStringMap1()
	{
		return this.stringMap1;
	}

	@Override
	public IEmbeddedEntity getEmbeddedEntity()
	{
		return this.embeddedEntity;
	}

	@Override
	public List<IEmbeddedEntity> getEmbeddedEntityList()
	{
//		return this.embeddedEntityList;
		return null;
	}

	@Override
	public List<String> getStringList1()
	{
		return this.stringList1;
	}


	@Override
	public String getDistinguishable()
	{
		return null;
	}


	@Override
	public void setDistinguishable(String uuid)
	{
	}

}
